package com.weipai.springboot.module.mapper;

import com.weipai.springboot.model.ProductProperty;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

public interface ProductPropertyMapper {
    int deleteByPrimaryKey(String propertyId);

    int insert(ProductProperty record);

    int insertSelective(ProductProperty record);

    ProductProperty selectByPrimaryKey(String propertyId);

    int updateByPrimaryKeySelective(ProductProperty record);

    int updateByPrimaryKey(ProductProperty record);

    //查询详情
    ProductProperty getPropertyById(String id);

    //分页查询
    List<ProductProperty> selectAllByProductCategoryId(@Param("start") Integer start, @Param("end") Integer size, 
                                                       @Param("productCategoryId") String productCategoryId);

    //分页的总数量
    Integer selectAllByProductCategoryIdAmount(String productCategoryId);

    //更改状态
    @Update("update c_product_property set property_status=#{status} where property_id=#{id}")
    int updateStatus(@Param("id") String id, @Param("status") Integer status);

    List<ProductProperty> getProductPropertyByCategoryId(String categoryId);

    //获取此分类下的属性
    List<Map<String,Object>> getPropertyByProductCategoryId(String id);

    //获取此属性下的所有属性选项
    List<Map<String,Object>> getOptionByPropertyId(String id);

    //获得所有属性名称
    List<String> getAllProperty();

    Integer updatePropertyName(@Param("id") String id, @Param("propertyName") String propertyName);
}